1. Field of the Invention
The present invention relates to Infrastructure-as-a-Service software, and, more specifically, to methods and systems for implementing simulations for Infrastructure-as-a-Service software.
2. Description of the Related Art
Infrastructure as a Service (“IaaS”) cloud management software typically manages a set of hardware as a pool of resources and performs allocation and de-allocation of resources to or from the pre-defined pool. The resources often include a virtual (hypervisor) physical server (including CPU, memory, storage) and network, although a wide variety of other hardware and services are possible. The resources are often installed as large pools in a data center which can be either local or remote to the end user. The IaaS cloud management software also optionally includes a set of administrative and end user capabilities, and builds on a service driven model like service request management, process automation through workflows, and notification.
Service providers offer IaaS services to clients who purchase these services on a fixed fee or pay-as-you-go. The clients can access the IaaS services via the Internet, virtual networks, and/or local area networks.
Setting up IaaS cloud management software for development, testing, training, and education requires a managed infrastructure including physical servers, storage and networking, etc. Often, the IaaS cloud management software might not be sufficient unless there is a minimum set of managed hardware for the resource pool. There are several key challenges faced during the life cycle of IaaS software development, and when training others to use the software, including but not limited to: (i) requiring a substantial investment in managed infrastructure; (ii) requiring investment in hardware to host the IaaS cloud management software itself; (iii) requiring highly skilled resources to perform the setup and configuration of the hardware and managed software; (iv) the substantial amount of time required to prepare and configure the software take more time; and (v) the extensive testing that is consistently required in order to make the software stable and deliver expected results.
There have been previous attempts to address one or more of these issues. For example, the IaaS cloud management software can have multiple integrated components. These components can be tested individually, but due to the limited available managed infrastructure, testing may not be completed on all code paths (end-to-end). Further, since the time required of developers is so extensive, testers have been asked to use available resources, thereby limiting these activities to just one or two components. Additionally, these training sessions are often limited to theory only (for example, charts and demos), resulting in very little actual practical training.